Field of Invention
The present invention relates to a smart device, and more particularly to a smart device with no AP (application processor).
Description of Related Arts
Smart devices (such as smart phones) tend to use operating systems such as Windows and Linux because the functions are getting more complex and open; therefore, the smart devices tend to use APs (Application Processor) with strong functions. An AP is almost an independent computer, and almost all the peripherals can be connected on it. An AP comprises a strong central processing unit (CPU) for running a general operating system such as Windows and Linux, a strong bus and peripheral adapters connected on the bus. In one hand, the foregoing structure is complex in hardware because all the peripherals are loaded on one bus, in the other hand, the foregoing structure is complex in software because all the drivers of the peripherals are developed and run with the operating system. The operating system handles not only applications but also hardware events. A strong software development ability as well as a strong hardware development ability is needed for developing an AP, and that's why the core unit of a smart device, the AP, is controlled by few companies. When it comes to utilization, any change of the peripheral can lead to a change of the driver and further lead to a change of the operating system; therefore, it is difficult to change the configuration of the peripheral when the AP is utilized. When the industrial structure is involved, the utilization of AP has a great impact on mobile phone chip industry. Mobile phone chip is the most important part and the most valuable part of a feature phone; like an AP, the mobile phone chip comprises a CPU and various peripheral adapters for connecting various peripherals. But in a smart phone, the mobile phone chip is just utilized as a modem because of the utilization of the AP, and is connected with the AP as a peripheral which makes its ability of managing peripheral useless and decreases the value of the mobile phone chip. Therefore, the architecture of the smart phone with AP is a threat to mobile phone chip manufacturers. Furthermore, general CPU manufacturers cannot get involved in the production chain of smart devices because of having no AP development ability.
Therefore, the main objective of the present invention is to find a novel architecture for smart devices to disperse the difficulties and to decrease the amount of the software development workload as well as involving the general CPU manufacturers and the mobile phone chip manufacturers into the competition of smart phone.
Before the appearance of micro processor and PC, the computer systems comprised a pure CPU module for running operating system and applications. Peripherals are managed in relatively independent modules. Peripheral modules are connected to the CPU module by so call “I/O channel”. This architecture worked quite efficiently. Now, USB (Universal Serial Bus) becomes so popular that almost all peripherals can be connected to a computer via USB. A computer needs to support only few peripherals. Other peripherals could be connected via USB. The PCI (Peripheral Component Interconnect) bus connectors in our PC becoming obsolete demonstrate well this fact.
USB is designed for connecting a peripheral to a host; the USB has been so successful since developed that almost all devices have drivers based on USB which means the device can be connected with a host by USB. Therefore, USB is a connecting method with great advantage, and driver developments on the main operating system for peripherals are saved with USB. However, the conventional USB is hard to be utilized as a built-in system bus; a main reason is that the USB is not flexible when connecting multi-function devices. A multi-function device is connected with a host by a conventional USB peripheral handler in a USB composite device. That means that the functional devices are arranged in one USB device, and a composite device driver must be provided in the host for separating the functions out before utilizing them. Additionally, the functional devices in a composite device cannot be increased or decreased independently, and the configuration of the functional devices must be determined before the functional devices are connected with the host. The configuration of the functional devices can only be changed by being disconnected and reconnected with the host, and it is impossible to change the configuration of other functional modules while keeping the connection of a certain functional module.
The USB standard defines another structure for connecting multi-function devices to a host: compound device. The compound device is a plurality of USB devices connected by a hub (which is like a USB subtree). Each function is connected on the host in an independent USB device (also called functional device). Because each function of the compound device is an independent USB device, the functional device drivers in the host can be utilized directly; therefore, the compound device has no driver problems as the composite device and is plug-and-play; at the meantime, it is flexible to control the functional devices and a plurality of peripherals can be integrated and connected with the operating system. Therefore, connecting the multi-function device to the host in a USB compound device form is an important step for utilizing the USB as a built-in system bus.
The FIG. 1 is a block diagram of a conventional USB host sub-system; the sub-system is provided in the host running in the operating system. The USB host sub-system comprises a USB functional device driver 101, a USB host module 102 and a USB host handler (including the root hub) 103. The host handler 103 is the hardware part of the sub-system (USB transceiver can be ignored in this discussion). The host module 102 is the software part that comprises a host control logic 104 and a host handler driver 105. The host handler driver 105 controls the host handler 103 and provides a USB transfer interface defined by the USB specification. The host control logic 104 realizes host functions defined by the USB specification with the transfer interface provided by the host handler driver 105. The functional device driver 101 realizes various classes of functional devices defined by the USB specification with the transfer interface provided by the host module 102 and loads the functional devices into an operating system by connecting to the operating system. Each kind of the functional devices such as mass storage (USB disk) and keyboard has its functional device driver; and USB hub is a special kind of functional devices, the USB hub serves only the host module and doesn't serve any other part of the operating system; the USB hub helps the host module to define a topological structure of the USB devices tree in such a manner to define acceptable signal latency for each device.
USB specification defines four kinds of transfer: control transfer, interrupt transfer, isochronous transfer and bulk transfer. The control transfer is only utilized by the host control logic and only exchanges date with the endpoint number 0 of a device, however, functional device drivers can utilize control transfer via the host control logic. Interrupt transfer ensures that the data can be received within predetermined latency. The isochronous transfer ensures that the data are sent with a predetermined bandwidth in each predetermined period for ensuring that the data are isochronously transferred. The bulk transfer has no guarantee of data transmission latency and isochronous transfer, but the USB will utilize all the available bandwidth for transferring the data as soon as possible. A USB system defines the data exchanges between the functional device drivers or the host control logic and the USB devices over USB transfer except for the device connecting directly to the downward port of a root hub and the events such as connection/disconnection detection, device speed detection and device reset, these events and actions are not in form of USB transfer. They should be treated by the root hub driver. So, to introduce a new USB subsystem to operating system like Windows, it's sufficient to provide a new USB host handler driver and a root hub driver. All what is based on USB transfer is already treated by operating system.